package com.css.sword.knowing.search;

import java.util.Map;

/**
 * 待创建索引文档属性类 key，相当于数据库主键，如果不需要自定义key，不要设置
 * 被索引文档，已map形式存放，一条记录一个map，多条记录需要使用多个IndexDocument。map的key，相当于数据库表的列，
 * value相当于数据库表的字段值
 */
public class IndexDocument {
    private String key;
    private String routing;
    private Map data;

    /**
     * 获取文档自定义唯一标识字段，相当于数据库主键
     * 
     * @return 返回唯一标识字段名称
     */
    public String getKey() {
        return key;
    }

    /**
     * 设置文档自定义唯一标识，相当于数据库主键；不需要自定义时可以不设置，系统会自动分配唯一值
     * 
     * @param key
     *            自定义的唯一标识字段。
     */
    public void setKey(String key) {
        this.key = key;
    }

    /**
     * 获取当前文档的routing值
     * 
     * @return routin值
     */
    public String getRouting() {
        return routing;
    }

    /**
     * 设置文档的routing（路由）值，相同routing的文档会分配到同一个索引分片上，提高检索速度
     * 
     * @param routing
     */
    public void setRouting(String routing) {
        this.routing = routing;
    }

    /**
     * 获取文档内容
     * 
     * @return 文档内容
     */
    public Map getData() {
        return data;
    }

    /**
     * 设置文档内容
     * 
     * @param data
     *            文档内容，以key-value形式存放，key为字段名称，value为字段内容
     */
    public void setData(Map data) {
        this.data = data;
    }

}
